




PAULA ][

(Paula, die Zweite!)






Ein Amiga-MODfile-Player
fr den Atari TT & STE

Version 2.4
15.9.1994



Shareware von: Pascal Fellerich



Shareware
=========
Ab der Version 2.0 ist Paula Shareware. Das bedeutet, da Sie das 
Programm frei kopieren, weitergeben und testen drfen. Sobald Sie es 
aber regelmig nutzen, wird die Registrierung fllig.

Ursprnglich war Paula nur ein kleines Utility zum Abspielen von 
MODfiles, das ich innerhalb relativ kurzer Zeit erstellt habe. Da die 
Reaktionen auf die 1.x-Versionen (die Freeware waren und auch noch 
sind...) aber sehr positiv waren und viele Anregungen und 
Verbesserungsvorschlge kamen, habe ich Paula in groen Teilen 
neugeschrieben. Da mittlerweile auch schon 'etwas mehr' Arbeit in 
diesem Programm drinsteckt, ist Paula nun Shareware geworden. Lesen Sie 
hierzu mehr im Abschnitt 'Registrierung'.

Folgende Dateien gehren zum 'PAULA'-Paket und mssen immer zusammen 
weitergegeben werden:

    1.  PAULA.APP   das Programm (kann auch den Namen PAULA.ACC oder 
        PAULA.PRG tragen)
    2.  PAULA_D.TXT die deutsche Anleitung, ASCII Format
    3.  PAULA_E.TXT die englische Anleitung, ASCII Format
    4.  MP.TTP  ModPlay: Module auch aus CLI's  abspielen.
    5.  MP.C    Der Sourcecode zu ModPlay
    6.  MP.PRJ  Project-File fr Pure-C
    7.  CHECKMOD.TTP    Prft Module auf Korrektheit und repariert 
        kaputte Module, soweit dies mglich ist.

Falls Ihre PAULA-Version einen Schlssel(** Die Versionen 2.0 bis 2.3 
und mglicherweise auch Versionen ab 2.5 bentigen einen sogenannten 
'Schlssel', damit es sich um eine richtige Vollversion handelt.**) 
bentigt: Die Datei 'PAULA.INF' darf nicht mit weitergegeben werden, da 
diese Datei unter anderem die Registrierdaten enthlt. 
Selbstverstndlich sind alle Manipulationen an dem Programm und an 
den begleitenden Dateien untersagt. Die Verteilung ber Mailboxen und 
PD-Versender ist erlaubt; jedoch ndert das nichts an den 
Registrierbedingungen.

  Alle Rechte an Paula liegen bei P. Fellerich.
    Kontaktadresse:     Pascal Fellerich
                        45, rue des Gents
                        L-3482 Dudelange
                        (Luxembourg)

    Postscheckkonto:    CCP 65407-29
    Bankkonto:          BIL 6-117/8499
    E-Mail:             2:270/16.3 (Fido-Net)
                        fellerich@fido.lu (Internet)


Registrierung
=============
Paula ist Shareware. Das bedeutet, da bei regelmiger Benutzung eine 
Zahlung fllig wird. Die Versionen 2.0 bis 2.3 wurden erst durch 
Eingabe eines speziellen, beim Autor erhltlichen Code zur Vollversion. 
Die Version 2.4 aber hat keinerlei solche Hindernisse eingebaut. Um 
die Zahlung des Sharewarebetrags zu erleichtern, gilt jetzt: Sie 
bestimmen selbst den zu zahlenden Betrag! Wenn Sie sich registrieren 
lassen wollen, schicken Sie mir:

   Ihre Anschrift (bitte leserlich):
    Name: <Vorname> <Name>      (30 Zeichen maximal)
    Addr: <Strae>              (30 Zeichen maximal)
    City: <Plz> <Stadt>         (30 Zeichen maximal)

   Den Sharewarebeitrag, den Sie selbst festlegen, mit dem Vermerk, 
da es um Paula geht. Der Einfachheit halber akzeptiere ich nur noch 
Bargeld oder berweisungen in LUF oder BFR auf mein Konto.

Sie erhalten dann den Schlssel zu Paula 2.x, der fr ltere und 
eventuell auch folgende Versionen bentigt wird; die Mitteilung erfolgt 
schriftlich (Brief oder E-Mail). Bei Fragen und/oder Problemen mit 
Paula ][ helfe ich auch gerne weiter.


Wozu Paula?
==========
Paula spielt die sogenannten 'MOD-Files' auf dem DMA-Soundchip des 
STE/TT ab. Diese MODfiles, auch als 'Module' bezeichnet, stammen 
ursprnglich vom Amiga, der einen speziellen 4-Kanal Soundchip namens 
'Paula' besitzt.

Natrlich gibt es haufenweise Modul-player fr den Atari. Aber Paula 
ist einzigartig - aber berzeugen Sie sich selbst!


Was kann Paula?
===============
Um lange Beschreibungen zu vermeiden hier eine stichwortartige 
Aufzhlung der 'Features' von Paula 2:
   Kompatibel zu wirklich allen MOD-Formaten, vom Uralt- Soundtracker 
    Format ber Noisetracker bis zum Protracker, ohne Wenn und Aber.
   Drei Samplingfrequenzen zur Auswahl: 12.5, 25, 50 KHz (mit Petra 
    auf ST's sind 6, 9.6 und 12 KHz mglich)
   Lineare Interpolation der Samples zur Verbesserung der 
    Klangqualitt, in Echtzeit.
   Booster - verbessert den Signal-Rauschabstand um 6 dB.
   Tonhhenvernderung ohne Beeinflussung der Geschwindigkeit.
   Geschwindigkeitsnderung ohne Beeinflussung der Tonhhe.
   Untersttzt LZ5 oder AFX gepackte Module.
   Echte und saubere GEM-Einbindung, dadurch auf allen TOS- Rechnern 
    lauffhig - auch unter MultiTOS/MiNT.
   Einfache und intuitive Bedienung.
   Untersttzt die Auswahlmglichkeiten von Selectric und Gemini.
   Programmierbar wie einfache CD-Spieler.
   Random: Mehrere Module werden in zuflliger Reihenfolge gespielt.
   Repeat-schalter; Module bzw. ganze Programme knnen wiederholt 
    werden.
   Anzeige der Prozessorbelastung und der Position im Modul.


Paulas Entstehungsgeschichte
============================
Als ich meinen TT bekam, wollte ich natrlich den neuen Soundchip 
testen - also habe ich mir einige MOD-Player fr den STE geholt. Nur 
liefen die meisten Player nicht auf dem TT oder aber sie produzierten 
einen eher miesen Sound. Was blieb mir anderes brig, als selbst 
einen Player zu schreiben. Aber das war einfacher gesagt als getan, 
denn auer der STE/TT Soundhardware mute ich auch noch die Amiga-
Soundhardware kennen, da ich einen Uralt-Player vom Amiga (D.O.C. 
Abspiel-routine 2.0 vom Juni 1986) portieren wollte. Ein paar Wochen 
spter, Ende Juli 1991 war's dann soweit - Paula 1.0 war fertig. Zwar 
kannte das Programm nur die Soundtracker-Kommandos aber es lief erst 
einmal. Anschlieend folgten noch einige Optimierungen und 
Verbesserungen (Version 1.5), aber dann war Schlu.
Erst im April 92 nahm ich die Entwicklung infolge einer Diskussion in 
der Mailbox (ATARI.GER im Fidonet) wieder auf - es entstanden die 
Versionen 1.7 und 1.8. Mittlerweile war die Tonqualitt ganz brauchbar 
geworden, aber mit dem Bedienungskomfort war es nicht weit her. Also 
begann ich mit der Entwicklung einer 'anstndigen' Benutzeroberflche 
fr den Player. Das war's dann...


Systemvoraussetzungen
=====================
Paula luft auf allen Atari-Computern, die
1.  ein TOS-kompatibles Betriebssystem haben, mindestens aber TOS 1.4
2.  eine STE-kompatible Soundhardware besitzen... oder den Sound-
    treiber PETRA installiert haben.
Damit ein sinnvoller Hintergrundbetrieb mglich ist, sollte der 
Computer mglichst viel Rechenleistung haben. Auf einem einfachen 8 MHz 
STE ist der Hintergrundbetrieb zwar mglich aber wenig sinnvoll 
(12.5KHz Ausgabe bei 50% Rechenzeitverbrauch). Ein 'voll 
aufgedrehter' Mega STE sollte es schon sein - dann ist bei 50% CPU-
Zeit 25KHz Ausgabe mglich.

Damit Paula auch ST's ohne DMA-Hardware luft, ist ein spezieller 
Sound-Treiber ntig, der die Funktionalitt der DMA- Soundhardware 
nachbildet. Einen solchen Treiber wurde von Christian Limpach 
geschrieben, heit 'PETRA' und liegt diesem Paket bei. Hinweise zur 
Benutzung finden Sie als Textdatei bei dem Programm.


Installation
============
Paula kann als Accessory (Endung .ACC) oder als Programm (Endung .PRG 
oder .APP) gestartet werden. Im Allgemeinen ist der Accessory-Betrieb 
vorzuziehen. Natrlich kann Paula auch von Chameleon geladen 
werden. Unter MultiTOS oder Magix kann Paula aber auch als Programm im 
Hintergrund laufen.
Auerdem ist es empfehlenswert, XCONTROL gleich mit zu installieren 
(falls nicht schon vorhanden), um Lautstrke, Tiefen, Hhen und Balance 
einstellen zu knnen. Dann sollte der Rechner noch an die Stereoanlage 
angeschlossen sein, damit Ihre Mitbewohner mglichst effektiv in 
ihrer Nachtruhe gestrt werden knnen.


Anleitung
=========
Nachdem Paula gestartet worden ist, erscheint ein Fenster mit 
dem Haupt-Dialog. Dieser ist optisch in 6 Bereiche aufgeteilt:
 1. Infozeile
 2. Player & Sound Setup
 3. SampleFreq
 4. CPU Load
 5. Position
 6. Das Tastenfeld
 Es folgt nun die obligate Erklrung der einzelnen Schalter und 
 Knpfe, danach kommen allgemeine Bedienungshinweise.


Das Tastenfeld
==============
Beginnen wir mit dem Einfachsten, dem Tastenfeld. Es ist aufgebaut 
wie bei einem Kassettenrecorder, daher sollte die Bedienung keine 
Probleme bereiten. Zustzlich ist in jedem Tastensymbol ein Buchstabe 
untergebracht. Das ist der zugehrige Tastatur-'Shortcut'.

LOAD: Zuerst mu natrlich ein Modul geladen werden, dazu dient 
dieser Knopf. Es erscheint die Fileselektor-Box und Sie knnen ein 
Modul auswhlen. Bei 'OK' ldt Paula sofort die ausgewhlte Datei. 
Bei Erfolg erscheint in der Infozeile des Fensters der Text 'Stopped: 
<modfilename>'. Eventuell auftretende Fehler werden sofort mit einer 
Alertbox quittiert. Mit 'Selectric' als Fileselektor knnen Sie auch 
mehrere Dateien gleichzeitig auswhlen!

STOP: Beendet das Abspielen eines Moduls und setzt Paula zurck. 
Waren mehrere Dateien ausgewhlt, so wird diese Programmierung von 
Paula auch aufgehoben. Die Statusanzeige zeigt den Text 'Stopped: ...'. 
Wenn im Accessory-Betrieb in diesem Zustand das Fenster geschlossen 
wird, gibt Paula den fr das letzte Modul reservierten Speicher frei.

PLAY: Startet das Abspielen. Wenn noch keine Datei(en) geladen war, 
erscheint zuerst der Fileselektor mit der Aufforderung 'Load MODfile'. 
Wurden mehrere Module angegeben, dann wird das laufende Modul beendet 
und Paula geht zum nchsten Modul in der Liste ber.

PAUSE: Dient dazu, das Abspielen zeitweilig anzuhalten. Im Gegensatz zu 
'STOP' wird dabei nichts gelscht, zurckgesetzt oder sonstwie 
beeinflut. Im 'Pause'-Zustand kann das Accessory auch verlassen 
werden, ohne da die geladene Datei freigegeben wird. Zum Weitermachen 
reicht es, einmal Pause oder Play anzuklicken.

REW: (REWIND) Springt eine Position im Modul zurck. Diese Funktion 
arbeitet nur wenn der Paula sich im Play- oder Pause- Modus befindet.

FF: (FAST FORWARD) Springt eine Position nach vorne im Modul, nicht 
jedoch ber das Ende hinaus. Auch dies Funktion arbeitet nur im Play- 
oder Pause-Modus.

!: (Ausrufezeichen) Ruft den 'Setup' Dialog auf, in dem einige 
weitere Funktionen wie Tonhhen- und Geschwindigkeitsvernderung sowie 
Parameter sichern zur Verfgung stehen.

?: (Fragezeichen) Allgemeine Information ber das Programm und den 
Autor. ber diesen Dialog ist auch das Registriermen zugnglich. Wie 
die Registrierung vorgenommen wird, ist im Abschnitt 'Registrierung' 
beschrieben.

Am Besten ist wenn Sie alle Funktionen einmal ausprobieren. Paula ist 
durch unsinnige oder falsche Bedienung nicht aus der Ruhe zu bringen!


Die Infozeile
=============
In der Infozeile zeigt Paula die aktuelle Betriebsart und eventuell 
einen Modul-Titel an. Es gibt vier Zustnde:

Inactive:   Paula tut gar nichts. Es ist keine Datei geladen und somit 
auch kein Speicher belegt. Im Accessorybetrieb mu Paula vor dem 
Auflsungswechsel in diesem Zustand sein um Speicherverlust oder gar 
Abstrze zu vermeiden.

Stopped:    Paula hat ein Modul geladen. Im Accessorybetrieb fhrt ein 
Auflsungswechsel jetzt zu Speicherverlust, da der von Paula allozierte 
Speicher nicht mehr freigegeben werden kann.

Paused:     Paula wartet darauf, weiterspielen zu drfen. Jetzt knnen 
Sie auch mit den Tasten '<<' und '>>' im Modul hin- und herspringen.

Playing:    Paula ist beschftigt - das sollten Sie auch hren! Wenn 
jemand anders auf den DMA-Soundchip zugreift, wird Paula dadurch 
natrlich gestoppt. Sobald der Soundchip wieder frei ist, versucht 
Paula weiterzuspielen. Das kann bis zu einer Sekunde dauern 
(funktioniert NICHT in Verbindung mit 'Petra'). Luft der Player 
trotzdem nicht mehr an (-> Bugreport an mich!) knnen Sie sich helfen 
indem Sie einfach PAUSE/PLAY oder PAUSE/PAUSE drcken.


SampleFreq
==========
Damit kann die Samplingfrequenz bei der Tonausgabe eingestellt werden. 
Zur Auswahl stehen die Frequenzen 12.5, 25 und 50 KHz. Je hher die 
Samplingfrequenz, desto hher auch die obere Grenzfrequenz. Theoretisch 
ist die hchstmgliche erzeugt Tonfrequenz genau fsample/2 
(Shannon'sches Abtasttheorem); praktisch etwa 40% der Abtastfrequenz 
infolge der im STE/TT verwendeten Filterstufen. Bei 25 KHz 
Samplingfrequenz knnen also Tne von bis zu 10 KHz sauber erzeugt 
werden.
Die nderung der Samplingfrequenz wird sofort bernommen. Beim 
Umschalten wird der Ton kurzzeitig unterdrckt, um Strgerusche 
(Krachen, Zirpen usw.) zu vermeiden.

Player & Sound Setup
In diesem Bereich befinden sich zwei Arten von Schaltern:
   Schalter zur Beeinflussung der Tonerzeugung
   Schalter zur Einstellung der Abspielmodi

 Interpolate: Schaltet die Interpolation ein. Dadurch verbessert sich 
die Tonqualitt sehr stark (saubere Hhen), aber es kostet viel 
Rechenzeit. Auf TT's ist Interpolation eigentlich ein Mu, da der 68030 
die ntigen Shift- und Multiplikationsbefehle sehr viel schneller als 
der 68000 bewltigt. Das Gesagte gilt brigens auch fr STE's mit 68020 
oder 68030 Beschleunigerkarte.

 Booster: Hebt die Lautstrke mit einem Trick um 6 dB an. Dadurch 
wird das Hintergrundrauschen besser verdeckt, allerdings nehmen die 
Verzerrungen bei lauten Passagen zu. Da diese Verzerrungen aber zweiter 
Ordnung sind, klingt das Ganze nach 'Rhrensound'.

 Protracker: Schaltet die Protracker-Kompatibilitt ein. Im Prinzip 
sind die Module zwar abwrtskompatibel, so da ein neuerer Player auch 
alte Module abspielen kann, aber mit dem Protracker wurden soviele 
Vernderungen eingefhrt, da bei verschiedenen Modulen diese 
Abwrtskompatibilitt nicht mehr gegeben ist. Deshalb ist dieser 
Schalter vorgesehen, um im Falle eines 'kritischen' Moduls einige 
(nicht alle!) Protracker-Features ausschalten zu knnen. Bei 15-
Instrument-Modulen wird dieser Schalter nicht beachtet, da es sich 
nicht um ein Protracker-format handeln kann.

 Repeat: Dieser Schalter erfllt eine Doppelfunktion. Falls nur ein 
Modul ausgewhlt wurde, bezieht sich Repeat auf das eine Modul. Das 
wird dann solange abgespielt, bis Sie Paula selbst unterbrechen. Wurden 
mehrere Module ausgewhlt, so wirkt Repeat auf diese Liste von Modulen. 
 Nachdem alle Module einmal abgespielt worden sind, beginnt Paula 
 wieder von vorne. brigens existieren Module, die mit 'Jump'-Befehlen 
 eine Endlosschleife aufbauen. Paula erkennt diese und knackt sie...

 Random: Die Karten werden gemischt... Diese Funktion arbeitet nur, 
wenn mehrere Module ausgewhlt worden sind. Nun werden die Module nicht 
mehr der Reihe nach abgespielt, sondern in einer zuflligen 
Reihenfolge - aber jedes Modul nur einmal. Sind alle Module 
abgespielt, hngt die weitere Verfahrensweise vom 'Repeat'-Schalter 
ab: ist er eingeschaltet, beginnt der Prozess wieder von vorne, 
andernfalls stoppt Paula und 'vergit' die eben gespielte Liste.


CPU-Load Indikator
==================
Dieser Balken zeigt an, wieviel Rechenzeit Paula fr sich abzweigt. 
Es handelt sich hier um eine relative Anzeige, bei der 100% immer die 
gesamte Rechenleistung des Computers darstellen.
Am rechten Ende des Balkens befindet sich noch ein rotes Anhngsel - 
das ist die berlastungsanzeige, die jedesmal, wenn die Rechenzeit mal 
nicht gereicht hat, fr eine knappe Sekunde 'aufleuchtet'.


Position
========
Diese Anzeige gibt die aktuelle Position im Modul an. Die Position 
wird Hexadezimal angezeigt, so wie das bei den Sound/Noise/Pro-trackern 
blich ist.


Allgemeine Bedienungshinweise:
==============================
Die grundstzliche Bedienung ist kein Geheimnis und sollte niemandem 
Probleme bereiten. Aber die Spezialitten wollen doch genauer erklrt 
sein. Darunter fallen:
   Verlassen des Haupt-Dialogs
   Mehrfachauswahl von Modulen ('Multiplay-Modus')
   Reaktion des Tastenfeldes
   Versteckte Funktionen

Wenn das Fenster mit dem Haupt-Dialog im Accessory-Betrieb 
geschlossen wird, luft der Player weiter. Analog zu XCONTROL kann 
dieses Fenster auch mit Return geschlossen werden.

Luft Paula als normales Programm, wird es durch Schlieen des 
Fensters verlassen und das laufende Modul wird angehalten. Deshalb wird 
in dieser Betriebsart Return nicht als CloseWindow-Kommando 
interpretiert.

Mehrfachauswahl... Die einfachste Art, mehrere Dateien anzugeben, 
besteht darin, in der Fileselektorbox eine Dateimaske (Wildcards) 
anstelle des erwarteten Namens anzugeben. Also LOAD anklicken, und in 
der Fileselektorbox im Namensfeld beispielsweise 'A*.
MOD' eingeben. Paula sucht dann alle Dateien in dem angegebenen Pfad, 
die mit 'A' beginnen und deren Endung '.MOD' ist. Natrlich mssen im 
eingestellten Verzeichnis auch Module liegen! Um alle Module im 
angegebenen Pfad abzuspielen reicht es, keinen Namen anzugeben. Paula 
whlt dann alle Dateien aus, die die Endung '.MOD' haben.

...mit Selectric: Falls Sie 'Selectric' als Fileselektorbox 
installiert haben, wird es noch einfacher: whlen Sie einfach die 
gewnschten Dateien an. Das geschieht mit einem Mausklick mit 
gedrckter Shift-Taste; weitere Selektionsmglichkeiten sind in der 
Anleitung zu Selectric beschrieben.

...mit dem Desktop, Gemini, EASE u.s.w: Melden Sie PAULA als 
Applikation fr Dateien des Typs 'MOD' an. Paula wertet nicht nur die 
Kommandozeile aus, sondern versteht auch VA_START Nachrichten.

Reaktion des Tastenfeldes: Paula versucht immer, den aktuellen 
Betriebszustand beizubehalten. Wenn schon ein Modul luft ('Playing: 
...') und Sie whlen ein anderes Modul aus - egal ob mit der Taste 
'LOAD' oder mit Gemini - dann spielt Paula sofort nach dem Laden des 
Moduls weiter.

Wenn Paula gestoppt war und Sie whlen mehrere Module per 'LOAD' aus, 
springt Paula sofort in den Pause-Modus. Dies mu geschehen, weil Paula 
die eben angegebene Liste im Stop-Modus sofort vergessen wrde. Auch 
hier ist es am einfachsten, sich durch Probieren an die Funktionsweise 
des Programms zu gewhnen.

Spezialitten: Paula ist an Multitasking-Umgebungen angepat. Das 
begreift folgende Funktionen:
   Paula wertet seine Kommandozeile aus.
   Paula versteht VA_START sowie eigene (MP_...)-Nachrichten
   Paula erkennt bereits laufende Kopien von sich selbst und 
bergibt die Kontrolle an das zuerst gestartete Programm. Es kann also 
immer nur eine Kopie ('Instanz') von Paula laufen(**    Das gilt nicht 
fr die Accessory-Version: Paula kann beliebig oft als ACC 
installiert werden.**).


Setup-Page - Dialog
===================
Dieser Dialog wird aufgerufen, wenn Sie die Taste '!' bettigen. Hier 
stehen die Optionen zur Tonhhenvernderung und zum Abspeichern der 
Einstellungen bereit.

Pitch Bend (cent): Damit lt sich die genaue Stimmung des Players 
beeinflussen. In der Grundeinstellung hat Paula die gleiche Stimmung 
wie ein Amiga mit 7.15909 MHz (NTSC). PAL- Amigas sind aber mit nur 
7.09379 MHz getaktet, klingen also tiefer. Diese Stimmung wird 
erreicht, wenn Pitch-Bend auf -10 bis -15 cent steht. So ganz genau 
braucht diese Einstellung nicht zu sein, da eine Tonhhennderung um 5 
cent sowieso die unterste Grenze der Wahrnehmbarkeit darstellt. Der 
Einstellbereich geht von +100 bis -1 00 cent, was +/- einem Halbton 
entspricht.

Transpose: Fr's Grobe. ndert die Stimmung in Halbtonschritten. Der 
Einstellbereich ist +/- 12 Halbtne, was +/- einer Oktave entspricht.

Frame Speed: Das ist die 'Taktgeschwindigkeit', mit der die Modul 
abgearbeitet wird. Beim Amiga kommt dieser Takt vom VBI (Vertical Blank 
Interrupt) und betrgt somit 50 Hz bei PAL- Amigas. Da Paula ohnehin 
alles emuliert, ist auch dieser Parameter einstellbar - von der halben 
bis zur doppelten Sollgeschwindigkeit.

Save: Sichert die gegenwrtig eingestellten Parameter in der Datei 
'PAULA.INF' und verlt den Dialog. Es werden auch die im Hauptdialog 
gemachten Einstellungen gesichert.

Exit: Verlt den Dialog. Die Einstellungen werden nicht beeinflut.

Reset: Setzt die drei Einstellung zurck und verlt den Dialog.


Info Page Dialog:
=================
Die obligate Informationsbox... Eine beliebte Art, auf die fllige 
Registrierung aufmerksam zu machen.


Gepackte Module!
================
Seit Version 2.1 untersttzt Paula auch gepackte Module. Zur Zeit wird 
nur das '-lz5-'-Verfahren benutzt, also das Gleiche wie bei AFX. Um 
Module entsprechend zu komprimieren, knnen Sie LHARC.TTP, ab Version 
2.01 benutzen. Damit lt sich ein ganzes Directory einfach und 
einigermaen schnell packen. Wenn Sie alle Module in C:\MODFILES\ 
untergebracht haben, starten Sie LHARC.TTP und geben als Kommandozeile 
'c C:\MODFILES\*.MOD' ein. Die Dateien behalten den gleichen Namen, 
schrumpfen aber auf durchschnittlich 75% ihrer Originalgre.


Fehlermeldungen
===============
Paula meldet eventuell auftretende Fehler per Alertbox. Dies sind 
normalerweise immer Dateifehler. Um Probleme mit pltzlich 
auftauchenden Alertboxen zu vermeiden, erfolgen diese Fehlermeldungen 
nicht, wenn Paulas Fenster geschlossen ist.
Es seien die Module A.MOD, B.MOD und C.MOD angegeben. Paula beginnt mit 
A.MOD, danach wird das Fenster geschlossen. Nachdem A.MOD fertig ist, 
versucht Paula B.MOD zu laden. Wenn das schiefgeht, stoppt Paula alle 
Aktionen und 'vergit' die angegebene Liste. Wenn Sie nun Paula erneut 
aufrufen und 'LOAD' anklicken, erscheint im Fileselektor der zuletzt 
benutzte Pfad und Dateiname.
Wenn die Meldung 'Corrupted MODfile' kommt, bedeutet das, da das 
angegebene Modul fehlerhaft ist. Oft ist ein Sample zu kurz oder es 
hngen falsche Daten am Modul dran. Als kleine Hilfestellung steht 
Ihnen das TOS-Programm 'CHECKMOD.TTP' zur Verfgung. Es liest Module, 
gibt Informationen darber aus und kann die Module in vielen Fllen 
reparieren, so da Paula sie wieder akzeptiert.


Weiterfhrende Erklrungen
==========================
In einem Modul sind bis zu 31 Samples, manchmal auch als Instrumente 
bezeichnet, gespeichert. Um ein bestimmtes Sample in verschiedenen 
Tonhhen auszugeben, spielt der Amiga das Sample einfach mit 
verschiedenen Abtastfrequenzen ab. Je hher die Abtastfrequenz, desto 
hher der erzeugte Ton. Da der Amiga vier unabhngige Tonkanle 
besitzt, kann er vier Samples gleichzeitig abspielen, mit verschiedenen 
Abtastfrequenzen versteht sich. Damit ist die Tonerzeugung sehr einfach 
und kostet keine Rechenzeit. Auf dem Atari ist die Sache schon 
schwieriger: der STE/TT DMA-Soundchip hat nur zwei Kanle (Stereo L + 
R), auerdem stehen nur vier Abtastfrequenzen zur Auswahl, wobei immer 
nur eine ausgewhlt sein kann und fr die beiden Stereo-Kanle gilt. 
Also mu ein anderes Verfahren zur Tonerzeugung benutzt werden - die 
direkte digitale Synthese. Die Funktionsweise ist eigentlich ganz 
einfach: Die Daten des Originalsamples werden nicht mehr 1:1 
ausgegeben, sondern 1:R, wobei R eine Realzahl ist. Soll also ein 
Sample bei einer tatschlichen Abtastrate von 10 KHz mit 5 KHz 
ausgegeben werden, ist R gleich 2 - jedes Byte wird zwei mal 
ausgegeben. Sind 7.5 KHz gewnscht, so gilt R=1.5 . Da in der Praxis 
nur ganzzahlige Schritte mglich sind, wird der erste Samplewert einmal 
ausgegeben, sein Nachfolger zwei mal, der nchste wieder einmal usw. Im 
Mittel ergibt sich dann 1.5, und das Ohr bekommt was will: 7.5 KHz.
Nun hat dieses Verfahren das Problem, da das Sample nicht 
gleichmig abgetastet wird. Beim oben erwhnten Beispiel ergibt sich 
folgendes Schrittschema:
    1 1 0 1 1 0 1 1 0 1 1 0 1 1 0
Bei tiefen Tnen, wenn ein Sample von 10 KHz auf 1 KHz 'tiefergelegt' 
wird, mu jedes Wort im Sample 10 mal ausgegeben werden - also erhlt 
man das Schrittschema:
    1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 usw.
Wenn man die dabei entstehende Kurve aufzeichnet drften sofort die 
unregelmigen Treppen im Signal auffallen. Und genau diese Treppen 
werden als Strgerusche (Sirren, Pfeifen) hrbar. Um dieses Problem zu 
umgehen mten eigentlich Zwischenwerte eingebaut werden - und genau 
dies bewerkstelligt die Interpolation. Ideal wre die Spline-
Interpolation; da dies aber Matrixrechnen erfordert benutzt Paula eine 
einfach lineare Interpolation. Auch damit wird das erzeugte Signal 
'glatter' und klingt besser. Das ist nicht zu verwechseln mit dem 
Oversampling, das einige MODplayer anbieten, und das darin besteht, 
jeden Samplewert zu verdoppeln um ihn dann mit der (ebenfalls) 
verdoppelten Samplingfrequenz auszugeben. Damit wird das Signal nur 
hhenlastiger, da die Filterstufen im STE/TT entsprechend anders 
eingestellt werden.
Noch ein paar Worte zur Tonqualitt: Durch die 'echte' Interpolation 
klingt Paula (die Emulation) bei 25 bzw. 50 KHz besser als Paula (Der 
Amiga-Chip)! Das liegt vor allem daran, da der Amiga einen fest 
eingestellten 7 KHz Tiefpafilter hat, der die Hhen radikal 
wegrasiert. Wird der abgeschaltet, sind zwar die Hhen wieder da, 
aber auch die unvermeidlichen Aliasingprodukte. Skeptikern empfehle 
ich einen Amiga sowie dessen Hardware Reference Manual [2].
Dem Amiga bleibt noch der Vorteil der greren Dynamik, denn dort hat 
jeder der vier Kanle seinen eigenen Lautstrkesteller, durch den 6 bit 
gewonnen werden. Der Rauschabstand zum Nutzsignal bleibt zwar bei 48 dB 
- normal fr 8 bit - aber leise Module werden immer noch sauber 
abgespielt, wo Paula (die Emulation) schon mit dem 
Quantisierungsrauschen zu kmpfen hat. Die im Amiga eingesetzten 
Wandler knnen auch als 'Fliekommakonverter' bezeichnet werden. Um 
nicht das Nachsehen zu haben, bietet Paula die 'Boost'-Option. Dann 
wird eine nichtlineare Wandlerkennlinie benutzt, so da eine Pseudo- 
Auflsung von 9 bit erreicht wird. Bei leisen Passagen wirkt das 
Wunder, bei lauten Passagen nehmen allerdings die Verzerrungen zu.
Falls es Ihnen egal ist, wie die Interpolation funktioniert, 
berspringen Sie den folgenden Absatz! Falls nicht: Hier die 
Interpolationsroutine, der bersichtlichkeit halber schematisch in C 
formuliert:

/* Fix-Point Zahl, zu Angabe des Abtastschrittes */
typedef struct fxp {
    int ip;                     /* integer part (1/1) */
    int fp;                     /* fractional part (1/65536) */
} fixpoint;
/* Holt ein Byte aus dem gespeicherten Sample und berechnet
 * den passenden Zwischenwert.
 * Param: spl: Zeiger auf das Sample
 * index: Index im Sample als Fixpoint-Zahl
 * volume: Amiga-Volumeregister Wert, 0..64
 * Return: Der resultierende Samplewert als integer.
 * Bereich: 14 bit (8 bit sample + 6 bit volume info)
 */
int get_samplevalue( char *spl, fixpoint index, int volume )
{
    int s1,s2;                  /* Samplewerte sn und sn+1 */
    s1 = volume * spl[index.ip];
    s2 = volume * spl[index.ip+1];
    return (((s2-s1)*index.fp)/65536 + s1);
}

Dann mu der Index inkrementiert werden, was auf eine Addition zweier 
Fixpoint-Zahlen hinausluft, der Rckgabewert mu gespeichert bzw. auf 
den entsprechenden Wert eines anderen Kanals aufaddiert werden, das 
Ganze mu auf 8 bit zurckskaliert werden und nebenbei mu noch 
beachtet werden, da ein Sample auch irgendwann zu Ende ist. Da vier 
Kanle vorhanden sind, mu die obige Routine bei 50 KHz Ausgabefrequenz 
200.000 (zweihunderttausend) Mal pro Sekunde ausgefhrt werden. Damit 
dieser Vorgang in Echtzeit ablaufen kann, ist Rechenleistung und eine 
gehrige Portion Gehirnschmalz ntig, denn ohne jegliche Optimierung 
htte selbst der 68030 keine Chance...


Immer ein beliebtes Kapitel: BUGS & LIMITATIONS!
================================================
Kollisionen: Prinzipiell vertrgt sich Paula mit allen anderen 
Programmen; da Paula aber direkt auf die DMA-Soundhardware zugreift, 
sind Kollisionen mit anderen Programmen, die das Gleiche tun wollen, 
unvermeidlich. Solange das 'andere' Programm einigermaen sauber 
programmiert ist und die Hardware stets in einem sauber definierten 
Zustand hinterlt, passiert nichts - auer da Paula gestoppt ist.

berlastung: Wenn der Rechner total berlastet ist, stimmt das 
interne Timing natrlich nicht mehr. Deshalb ist der Zeitpunkt, zu dem 
die Hardware-Register beschrieben werden, undefiniert. Dadurch kommt es 
manchmal vor, da der Soundchip den falschen Speicherbereich 
abspielt, obwohl in den Chipregistern die richtigen Werte stehen 
(!) - dann gibt's Katzenmusik. Dagegen hilft: PAUSE, Samplingfrequenz 
herruntersetzen oder Interpolation ausschalten um Rechenzeit zu 
sparen, dann nochmals PAUSE. Oder hatten Sie etwa den Cache des 68030 
ausgeschaltet ???

Auflsungswechsel: Vor jedem Auflsungswechsel mu sichergestellt sein, 
da Paula inaktiv ist. Also Paula einmal aufrufen, 'S' (fr STOP) und 
dann Return (Fenster schlieen). Falls MultiTOS die spezielle (neu 
eingefhrte) GEM-Message AP_TERM, die den bevorstehenden 
Auflsungswechsel ankndigt, an die einzelnen Programme schickt, kann 
Paula darauf mit der Einstellung aller Aktivitten reagieren.

Protracker 'CIA'-Replay-Speed: Seit Version 2.2 funktioniert das CIA-
Speed-setup astrein, ohne Einschrnkungen. Nachteil: Einige 
Noisetracker-Module werden jetzt falsch abgespielt. Abhilfe: Protracker-
Modus ausschalten!

Abstrze auf STE's: Irgendwie beit sich Paula mit einigen 1040STE: Auf 
zwei STE's gab's totale Hnger, und auf einem mit 16MHz CPU 
ausgerstetem 1040'er gab's Bomben wegen Cache-fehler, unabhngig vom 
Modul. Das ist ein Hardwareproblem dieser STE's, da kann man leider 
nichts machen. Ab v2.4 sind jedoch TAS-Befehle entfernt worden, was die 
Chancen fr diese STEs erhht.


Internes
========
GEM-Benutzerschnittstelle: Paula verarbeitet die von Gemini stammende 
'VA_START'- Nachricht. In einer solchen Message ist in msg[3] und 
msg[4] ein Zeiger enthalten, der von Paula ausgewertet wird. Der Player 
reagiert folgendermaen:
   Nullpointer oder Zeiger auf Leerstring: Gleiche Reaktion wie bei 
    AC_OPEN.
   Zeiger auf String mit einem Namen: Paula ldt dieses Modul und 
    startet es sofort.
   Zeiger auf String mit mehreren Namen: Paula geht in den 
    'Multiplay'-Modus ber und spielt alle MODs.

Der bergebene String wird intern kopiert, kann auf der Aufruferseite 
lokal sein. Wichtig ist nur, da Dateinamen im String durch genau ein 
Space/Komma/Semikolon getrennt sind und da keine Wildcards benutzt 
werden. Zur Komplettierung des Dateinamens wird intern SHEL_FIND 
benutzt.

Ab Version 2.4 gibt es auch neue GEM-Messages:
   MP_ACK (0x4800): Paula sagt OK! Das vorige Kommando ist verstanden 
    worden. msg[7] enthlt die Versionsnummer des Programms; 0x204 = 
    v2.4
   MP_NAK (0x4801): Paula sagt NICHT OK! Das vorige Kommando ist 
    nicht verstanden bzw. abgelehnt worden. msg[7] enthlt die 
    Versionsnummer des Programms; 0x204 = v2.4
   MP_START (0x4802): Funktion ist identisch mit VA_START. Nach 
    bernahme des Kommandostrings schickt Paula aber eine MP_ACK 
    (bzw. MP_NAK)-Nachricht an den Absender zurck, und signalisiert 
    so, da der in der MP_START-Nachricht angegebene Speicherbereich 
    anderweitig benutzt werden kann. Dies ist sehr wichtig in 
    Multitasking-Systemen bzw. fr MP.PRG (Sourcecode MP.C liegt bei).
   MP_STOP (0x4803): Stoppt Paula und gibt den fr MODs und Playlisten 
    allozierten Speicher frei. Das Fenster bleibt offen. Paula 
    schickt MP_ACK zurck.
   MP_SHUTDOWN (0x4804): Stoppt und beendet Paula. Im Accessory-
    Modus wird nur der Speicher freigegeben und das Fenster 
    geschlossen.Paula schickt MP_ACK zurck.

Vektorverbiegerei... Paula belegt den I07 (monochrome monitor 
detect) - Interrupt der 68901 MFP. Dazu wird eine XBRA-Kennung 'PAUL' 
benutzt.

Speicherverbrauch: Paula bentigt rund 45 KB fr den Programmcode und 
fixe Daten. Auf Maschinen mit dem 68000-Prozessor kommen noch 15 KB fr 
Volumetabellen hinzu.

Notstop: Um Paula sofort 'abzuwrgen' und zur Freigabe des allozierten 
Speichers zu zwingen, reicht es, eine AP_TERM-Message zu schicken. 
(AP_TERM = GEM message Nummer 50). Allerdings sollte dazu besser 
MP_SHUTDOWN verwendet werden.

Speeeeed!  Um auf dem TT mglichst wenig Rechenzeit zu verbraten, 
sollte Paula komplett ins 'Fast'-RAM geladen werden (soweit vorhanden). 
Der Prozessorcache sollte dabei unbedingt eingeschaltet bleiben, sonst 
sackt der TT auf ST-Leistung ab. Ohne Cache wird's selbst auf dem TT 
sehr knapp bei 50 KHz Interpolation (wobei zu bemerken ist, da ein 
gewisser anderer MODplayer 50 KHz Interpolation selbst bei 
eingeschaltetem Cache kaum noch meistert!).

Hardware: Weder der MFP-Timer A noch der Yamaha Soundchip werden 
angetastet. Somit bleibt Ihnen der Tastaturklick und die Systemglocke 
erhalten, es ist darber hinaus noch mglich, digitale Soundeffekte mit 
dem Yamaha-Chip zu erzeugen. Mit STSPEECH.TOS lassen sich beliebige 
Texte in ein laufendes Modul einblenden.

Entwicklung: Paula 2 wurde mit Pure C und dem Pure Assembler 
entwickelt. Der eigentliche 'MODplayer', also die Replay-Routine, 
basiert auf dem 'Protracker 2.1B Player' der Amiga Freelancers.

Thanx for the help...: Hilfreich zur Seite standen mir:
Joel Franois:  Amiga Dokumentationen, D.O.C. Replay Routine
Fridolin Koch:  Protracker Replay Routine, gute Module
Georges Kesseler:   Betatester, Optimierungsvorschlge, 'Repeat-Killer'
Christian Limpach:  Betatester, ST-Sound Treiber!


MP - ModPlay Interface
======================
MP.PRG ist ein sehr einfaches Utility, mit dem es mglich ist, Paula 
auch aus Kommandoshells heraus zu starten. MP schickt die in der 
Kommandozeile angegebenen Dateien einfach in einer 'MP_START'-Nachricht 
verpackt an Paula weiter. Wildcards werden nicht von MP ausgewertet; 
dafr kennt MP aber das ARGV- Verfahren (beim Kompilieren mit 
'PCVSTART.O' linken!). Somit werden Shells wie die Mupfel oder Mintshel 
voll untersttzt.

Haben Sie PAULA als ACC installiert? Dann knnen Sie MP.TTP im normalen 
Desktop als Anwendung fr '*.MOD' anmelden; dann lassen sich Module 
auch auf Doppelklick hin abspielen. MP soll kein Musterbeispiel fr 
gelungene C-Programmierung darstellen, es wurde Wert auf Einfachheit 
gelegt. MP inklusive den Quellcodes ist Public Domain!


CHECKMOD - kaputte Module reparieren
====================================
Irgendwann wird Paula ein Modul mit dem Kommentar 'Corrupted MODfile' 
verwerfen. In diesem Fall kann CHECKMOD helfen: einfach starten und als 
Parameter den Namen des Moduls (inklusive Pfad) angeben. Bei den 
neueren TOSsen reicht es, das fragliche Modul auf das CHECKMOD-Icon zu 
ziehen. Checkmod liest das Modul und gibt eine Liste mit den benutzten 
Samples aus. Auerdem gibt Checkmod die Art des Fehlers aus.
Corrupted Pattern List: Dieses Modul kann nicht mehr automatisch 
repariert werden.

Short Sample: Ein Sample ist zu kurz geraten. Falls dieser Fehler nur 
das letzte Sample betrifft und die Differenz zwischen Ist- und Soll-
Lnge nicht zu gro ist, sind die 'Heilungschancen' gut. Paula 
toleriert maximal 4 fehlende Bytes.

Superfluous Data in MODfile: Am Modul hngen noch berflssige Daten. 
Diesen Fehler behebt Checkmod problemlos. Paula toleriert bis zu 256 
Bytes berflssiger Daten.

Nachdem Checkmod gelaufen ist, erscheint der Text: Save Module as: 
Einfach <Return> verlt das Programm ohne weitere Aktionen, ein Punkt 
'.' speichert das Modul unter gleichem Namen neu ab. Wenn Sie einen 
neuen Pfad und Namen angeben, wird das Modul unter diesem neuen Namen 
gespeichert.


Bibliographie
=============
[1] Jankowski/Rabich/Reschke
    Atari Profibuch ST/STE/TT
    Sybex Verlag, ISBN 3-88745-888-5

[2] Amiga Hardware Reference Manual
    Addison-Wesley, ISBN 0-201-18157-6

[3] Thomsen
    Digitale Audiotechnik
    Franzis' Verlag, ISBN 3-7723-7151-5

[4] DDS - Direkte Digitale Synthese
    Elektor No257, Mai 1992, s.52ff

[5] Ulrich Michels
    dtv Atlas zur Musik, Band 1 (Akustik, Wellenlehre, Tonparameter)
    Deutscher Taschenbuch Verlag, ISBN 3-423-03022-4



Registrier-Formular
===================
Ich benutze PAULA, Version 2._ _ und mchte mich registrieren lassen.

Vorname, Name:  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Strae: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Plz, Ort:   _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Platz fr Kommentare, Verbesserungsvorschlge und Fehlermeldungen 
(bei Problemen bitte auch die verwendete Hard- und Software mit 
angeben):







-----------------------------------------------------------------

